﻿using System;

namespace Bettzueche.Dampfross
{
    /// <summary>
    /// Ein Hexagonfeld mit Wegkosten zum Ziel.
    /// </summary>
    [Serializable]
    public class DijkstraKachel : Hexagon
    {
        /// <summary>
        /// Die "günstigsten" Wegkosten von diesem Hexfeld zum Ziel,
        /// </summary>
        public int Wegkosten { get; set; }
        /// <summary>
        /// Die Richtung von diesem Hexfeld aus, mit den geringsten Wegkosten zum Ziel.
        /// </summary>
        public HexRichtungen Vorganger { get; set; }
        /// <summary>
        /// Indiziert nach Reihenfolge (Ordinalzahl) der <c>HexRichtungen</c>. Gibt die geringsten
        /// Wegkosten zum Ziel, wenn man die entsprechende Richtung einschlägt.
        /// </summary>
        public int[] AlleKosten { get; set; }

        /// <summary>
        /// Initializes a new instance of the <see cref="DijkstraKachel"/> class,
        /// mit <c>Wegkosten</c> und AlleKosten[0-5] = MaxValue sowie <c>Vorganger</c> = Standard (NO).
        /// </summary>
        public DijkstraKachel() {
            Wegkosten = Int32.MaxValue;
            AlleKosten = new int[6];
            for (int i = 0; i < AlleKosten.Length; i++) {
                AlleKosten[i] = Int32.MaxValue;
            }
        }
    }
}
